The following description relates to programming objects that provide for intuitive development of enterprise resource planning systems.
Enterprise resource planning (ERP) systems are generally integrated computer systems that manage multiple functions within an organization, such as human resources, manufacturing, customer relationships, supplier relationships, sales force automation, project management, product life-cycle management, and the like. ERP systems can contain an almost endless array of information. For example, information may be stored in a highly-organized format, such as a flat-file database. This type of information could include information about members of the organization (e.g., employees), such as names, employee numbers, starting work date, and accrued vacation time. Information may also be stored in a less-organized format, e.g., as word processing documents, images, spreadsheets, text files, or audio files. This diverse range of information types can create real challenges for developers working to implement an ERP system in a manner that is intuitive and easy-to-use.
Most organizations are also unable to set up an entire ERP system at one time. Rather, such systems typically grow and morph over time as the organization makes decisions about new software purchases (decisions that might be made without coordination from department-to-department or division-to-division), or acquires new pieces of the organization (such as through mergers with, or purchases of, other organizations that have their own current computer systems). As a result, a large organization will often have many databases that store similar information in different organizational formats. In addition, the databases may be provided by different companies, and thus use different protocols for accessing the information. These differences bring even greater variation to the data that developers must provide to users of a system.
Tools are available that assist developers in taming this mass of information stored in different formats on different systems. For example, various abstraction layers may be provided to translate information requests into the appropriate protocol for various data storage systems, such as those provided by Oracle, IBM, Informix, Sybase, and Microsoft, and systems that follow various models such as the LDAP model, X.500, and other, proprietary database models. These layers help simplify data access for a developer to some extent. Still, further simplification of access to data may be preferred in particular situations. In particular, it is helpful to better integrate any back-end data storage systems with the user interface that is prepared by a developer of a computer system.